package string;

/**
 * java.lang.StringBuilder
 * 1. StringBuilder类是一个可变的字符串对象，用于存储和操作字符序列。
 * 2. StringBuilder类和String类一样，底层也是使用char[]数组存储字符序列。
 * 3. StringBuilder是专门用来修改字符串内容的API，提供了基本的修改操作:增删改插
 */
public class StringBuilderDemo {
    public static void main(String[] args) {
        String line = "好好学习java";
        System.out.println(line);

//        StringBuilder builder = new StringBuilder(line);
        StringBuffer builder = new StringBuffer(line);
        /*
            好好学习java
                V
            好好学习java,为了找个好工作
            添加新内容:append
         */
        builder.append(",为了找个好工作");
        System.out.println(builder);//"好好学习java,为了找个好工作"
        System.out.println(line);//"好好学习java"  String是不变对象

        /*
            好好学习java,为了找个好工作
                       V
            好好学习java,就是为了改变世界
            替换操作:replace
         */
        builder.replace(9,16,"就是为了改变世界");
        System.out.println(builder);

        /*
            好好学习java,就是为了改变世界
                        V
            ,就是为了改变世界
            删除操作:delete
         */
        builder.delete(0,8);
        System.out.println(builder);

        /*
            ,就是为了改变世界
                  V
            活着,为了改变世界
            插入操作:insert
         */
        builder.insert(0,"活着");
        System.out.println(builder);
        //反转字符串
        builder.reverse();
        System.out.println(builder);
        /*
            将StringBuilder修改后的内容以字符串形式返回
         */
        String line2 = builder.toString();
        System.out.println(line2);
    }
}





